package com.knowledge.business.service.impl;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.knowledge.business.domain.FxDTO;
import com.knowledge.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.knowledge.business.mapper.TCpRecordMapper;
import com.knowledge.business.domain.TCpRecord;
import com.knowledge.business.service.ITCpRecordService;

/**
 * 产品咨询记录Service业务层处理
 *
 * @author zhaoyk
 * @date 2025-09-28
 */
@Service
public class TCpRecordServiceImpl extends ServiceImpl<TCpRecordMapper, TCpRecord> implements ITCpRecordService {
    @Autowired
    private TCpRecordMapper tCpRecordMapper;

    /**
     * 查询产品咨询记录
     *
     * @param id 产品咨询记录主键
     * @return 产品咨询记录
     */
    @Override
    public TCpRecord selectTCpRecordById(String id) {
        return tCpRecordMapper.selectTCpRecordById(id);
    }

    /**
     * 查询产品咨询记录列表
     *
     * @param tCpRecord 产品咨询记录
     * @return 产品咨询记录
     */
    @Override
    public List<TCpRecord> selectTCpRecordList(TCpRecord tCpRecord) {
        return tCpRecordMapper.selectTCpRecordList(tCpRecord);
    }

    /**
     * 根据时间段或天数查询 TCpRecord 按照出现次数排行
     */
    @Override
    public List<Map<String, Object>> selectTCpRecordStatistics(FxDTO dto) {
        return tCpRecordMapper.selectTCpRecordStatistics(dto);
    }

    /**
     * 新增产品咨询记录
     *
     * @param tCpRecord 产品咨询记录
     * @return 结果
     */
    @Override
    public int insertTCpRecord(TCpRecord tCpRecord) {
        tCpRecord.setCreateTime(DateUtils.getNowDate());
        return tCpRecordMapper.insertTCpRecord(tCpRecord);
    }

    /**
     * 修改产品咨询记录
     *
     * @param tCpRecord 产品咨询记录
     * @return 结果
     */
    @Override
    public int updateTCpRecord(TCpRecord tCpRecord) {
        tCpRecord.setUpdateTime(DateUtils.getNowDate());
        return tCpRecordMapper.updateTCpRecord(tCpRecord);
    }

    /**
     * 批量删除产品咨询记录
     *
     * @param ids 需要删除的产品咨询记录主键
     * @return 结果
     */
    @Override
    public int deleteTCpRecordByIds(String[] ids) {
        return tCpRecordMapper.deleteTCpRecordByIds(ids);
    }

    /**
     * 删除产品咨询记录信息
     *
     * @param id 产品咨询记录主键
     * @return 结果
     */
    @Override
    public int deleteTCpRecordById(String id) {
        return tCpRecordMapper.deleteTCpRecordById(id);
    }
}
